function ready() {
	// var provinceGrid = function() {
	var conditionStore = new Ext.data.Store({
				url : 'Province!queryProvince.action',
				reader : new Ext.data.JsonReader({
							root : 'result.result',
							id : 'conditionStore',
							totalProperty : 'result.totalCount'
						}, [{
									name : 'province_id',
									mapping : 'province_id'
								}, {
									name : 'province_name',
									mapping : 'province_name'
								}, {
									name : 'province_code',
									mapping : 'province_code'
								}, {
									name : 'province_pinyin',
									mapping : 'province_pinyin'
								}, {
									name : 'province_abbr_pinyin',
									mapping : 'province_abbr_pinyin'
								}])
			});
	var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),
			new Ext.grid.CheckboxSelectionModel(), {
				header : '',
				hidden : true,
				dataIndex : 'province_id',
				width : 130
			}, {
				header : '省编码',
				dataIndex : 'province_code',
				width : 70

			}, {
				header : '省份名',
				dataIndex : 'province_name',
				width : 130

			}, {
				header : '省份全拼',
				dataIndex : 'province_pinyin',
				width : 70

			}, {
				header : '省份简拼',
				dataIndex : 'province_abbr_pinyin',
				width : 70
			}]);

	// create the editor grid

	var newWin = getAddWindow();
	var modifyWin = getModifyWindow();
	conditionStore.reload();
	var addAction = new Ext.Action({
				text : '新增省',
				// iconCls:'all',
				handler : function() {
					/*newWin.findById('PROVINCE_ID1').setValue('');
					newWin.findById('PROVINCE_NAME1').setValue('');
					newWin.findById('PROVINCE_CODE1').setValue('');
					newWin.findById('PROVINCE_PINYIN1').setValue('');
					newWin.findById('PROVINCE_ABBR_PINYIN1').setValue('');*/

					newWin.show();
				}
			});

	var editAction = new Ext.Action({
		text : '修改省',
		// iconCls:'all',
		handler : function() {
			var length = grid.getSelectionModel().getSelections().length
			if (length < 1) {
				Ext.Msg.alert('警告', '请选择需要修改的省份');
				return;
			}
			if (length > 1) {
				Ext.Msg.alert('警告', '只能选择一个省份进行修改');
				return;
			}
			Ext.Ajax.request({
				url : "Province!queryProvinceDetails.action?province_id="
						+ grid.getSelectionModel().getSelections()[0]
								.get('province_id'),
				method : "post",
				success : function(response, options) {
					var responseTextVale = Ext.util.JSON
							.decode(response.responseText);
					// Ext.Msg.alert(responseTextVale.resultL[0].province_name);
					modifyWin.findById('PROVINCE_ID2')
							.setValue(responseTextVale.resultL[0].province_id);
					modifyWin
							.findById('PROVINCE_NAME2')
							.setValue(responseTextVale.resultL[0].province_name);
					modifyWin
							.findById('PROVINCE_CODE2')
							.setValue(responseTextVale.resultL[0].province_code);
					modifyWin
							.findById('PROVINCE_PINYIN2')
							.setValue(responseTextVale.resultL[0].province_pinyin);
					modifyWin
							.findById('PROVINCE_ABBR_PINYIN2')
							.setValue(responseTextVale.resultL[0].province_abbr_pinyin);
					// newWin.findById('entryGrid').getStore().loadData(responseTextVale.resultL[0].details,
					// false);
				}
			});
			modifyWin.show();
		}
	});
	var delAction = new Ext.Action({
		text : '删除省',
		handler : function() {

			var length = grid.getSelectionModel().getSelections().length
			if (length < 1) {
				Ext.Msg.alert('警告', '请选择需要删除的省');
				return;
			}
			// if (length > 1) {
			// Ext.Msg.alert('警告', '不可以同时删除多家省份');
			// return;
			// }
			Ext.MessageBox.show({
				title : '提示',
				msg : '您选中了' + length + '条记录进行删除,请问您确认吗?',
				buttons : Ext.MessageBox.OKCANCEL,
				fn : function(btn) {
					if (btn == "ok") {
						var deleteCityId = [];
						var rs = grid.getSelectionModel().getSelections();
						for (var i = 0; i < length; i++) {
							var cityId = rs[i].data.province_id;
							deleteCityId.push(cityId);

						}
						Ext.Ajax.request({
							url : "Province!delProvince.action?province_id="
									+ Ext.encode(deleteCityId),
							method : "post",
							success : function(response, options) {
								var responseTextVale = Ext.util.JSON
										.decode(response.responseText);
								if (responseTextVale.hasSubCity > 0) {
									Ext.Msg.alert('删除失败', '该省份下存在有效城市，不能删除！');
								} else {
									// 判断是否页面数据全选
									if (grid.getSelectionModel()
											.getSelections().length == grid
											.getStore().getCount()) {
										// 当前页面为最后一页
										if (grid.getBottomToolbar()
												.getPageData().pages == grid
												.getBottomToolbar()
												.getPageData().activePage) {
											conditionStore.on('beforeload',
													function() {
														var page = grid
																.getBottomToolbar()
																.getPageData().pages
																- 2 >= 0
																? grid
																		.getBottomToolbar()
																		.getPageData().pages
																		- 2
																: 0
														conditionStore.baseParams = {
															PROVINCE_CODE : Ext
																	.getCmp('PROVINCE_CODE')
																	.getValue(),
															PROVINCE_NAME : Ext
																	.getCmp('PROVINCE_NAME')
																	.getValue(),
															start : page
																	* grid
																			.getBottomToolbar().pageSize,
															limit : grid
																	.getBottomToolbar().pageSize
														}
													});
										}
									}
									conditionStore.reload();
									Ext.Msg.alert('提示', '删除操作成功！');
								}

							}
						});

					}
					if (btn == "cancel") {
						return;
					}
				}
			});

		}
	});

	var conditionForm = new Ext.form.FormPanel({
		frame : true,
		title : '查询条件',
		id : 'conditionForm',
		bodyStyle : 'padding:5px 5px 0',

		items : [{
			layout : 'column',
			columnWidth : 1,
			items : [{
						columnWidth : 0.5,
						layout : 'form',
						items : [{
									xtype : 'textfield',
									fieldLabel : '省份名称',
									name : 'PROVINCE_NAME',
									id : 'PROVINCE_NAME',
									anchor : '90%',
									blankText : '名称不能为空',
									emptyText : ''
								}]
					}, {
						columnWidth : 0.5,
						layout : 'form',
						items : [{
									xtype : 'textfield',
									fieldLabel : '省份编码',
									name : 'PROVINCE_CODE',
									id : 'PROVINCE_CODE',
									anchor : '90%',
									emptyText : '',
									blankText : '省份编码不能为空'
								}]
					}, {
						columnWidth : 0.5,
						layout : 'form',
						items : [{
							xtype : 'button',
							text : '查询',
							handler : function() {
								conditionStore.on('beforeload', function() {
											conditionStore.baseParams = {
												PROVINCE_CODE : Ext
														.getCmp('PROVINCE_CODE')
														.getValue(),
												PROVINCE_NAME : Ext
														.getCmp('PROVINCE_NAME')
														.getValue()
											}
										});
								conditionStore.load();
							}
						}]
					}]
		}]
	});
	conditionForm.render(Ext.getBody());

	function getAddWindow() {
		var addPanel = new Ext.form.FormPanel({
					// labelAlign: 'top',
					frame : true,
					id : 'addPanelForm',
					bodyStyle : 'padding:5px 5px 0',
					items : [{
								layout : 'column',
								items : [{
											columnWidth : 1,
											layout : 'form',
											items : [{
														xtype : 'hidden',
														name : 'PROVINCE_ID1',
														id : 'PROVINCE_ID1'
													}]
										}, {
											columnWidth : .5,
											layout : 'form',
											items : [{
														xtype : 'textfield',
														fieldLabel : '省份编码',
														name : 'PROVINCE_CODE1',
														id : 'PROVINCE_CODE1',
														anchor : '100%',
														allowBlank : false,
														emptyText : '请输入省份编码',
														blankText : '省份编码不能为空'
													}, {
														xtype : 'textfield',
														fieldLabel : '省份全拼',
														name : 'PROVINCE_PINYIN1',
														id : 'PROVINCE_PINYIN1',
														anchor : '100%'

													}]
										}, {
											columnWidth : .5,
											layout : 'form',
											items : [{
														xtype : 'textfield',
														fieldLabel : '省份名称',
														name : 'PROVINCE_NAME1',
														id : 'PROVINCE_NAME1',
														anchor : '100%',
														allowBlank : false,
														blankText : '省份名称不能为空',
														emptyText : '请输入省份名称'
													}, {
														xtype : 'textfield',
														fieldLabel : '省份简拼',
														name : 'PROVINCE_ABBR_PINYIN1',
														id : 'PROVINCE_ABBR_PINYIN1',
														anchor : '100%',
														allowBlank : true,
														emptyText : ''
													}]
										}]
							}]
				});
		// 新增省的窗口
		var addWin = new Ext.Window({
			buttonalign : 'right',
			closable : true,
			draggable : true,
			height : 160,
			// layout : 'border',
			top : 10,
			region : 'center',
			plain : true,
			items : [addPanel],
			title : '新增省份信息',
			width : 550,
			listeners : {
				"beforedestroy" : function(obj) {
					return false;
				},
				"beforeshow" : function(obj) {
					addPanel.getForm().reset();
					deletedJson = [];
					return true;
				},
				"beforehide" : function(obj) {
					 addPanel.getForm().reset();
					return true;
				}
			},
			buttons : [{
				text : '保存并继续新增',
				id : 'continue',
				handler : function() {

					if (!addPanel.findById('PROVINCE_NAME1').validate()) {
						Ext.Msg.alert('', '省份名称必填');
						addPanel.findById("PROVINCE_NAME1").focus();
						return;
					}

					if (!addPanel.findById('PROVINCE_CODE1').validate()) {
						Ext.Msg.alert('', '省份编号必填');
						addPanel.findById("PROVINCE_CODE1").focus();
						return;
					}

					Ext.Ajax.request({
						url : 'Province!updateProvince.action',
						method : 'post',
						params : {
							province : "{\"province\":{"
									+ "\"province_id\":\""
									+ addPanel.findById("PROVINCE_ID1")
											.getValue()
									+ "\",\"province_name\":\""
									+ addPanel.findById("PROVINCE_NAME1")
											.getValue()
									+ "\",\"province_code\":\""
									+ addPanel.findById("PROVINCE_CODE1")
											.getValue()
									+ "\",\"province_pinyin\":\""
									+ addPanel.findById("PROVINCE_PINYIN1")
											.getValue()
									+ "\",\"province_abbr_pinyin\":\""
									+ addPanel
											.findById("PROVINCE_ABBR_PINYIN1")
											.getValue() + "\"}}"
						},
						success : function() {
							conditionStore.commitChanges();
							conditionStore.on('beforeload', function() {
										conditionStore.baseParams = {}
									});

							Ext.MessageBox.show({
								title : '提示',
								msg : '新增操作成功！',
								buttons : Ext.MessageBox.OK,
								fn : function(btn) {
									if (btn == "ok") {

										newWin.findById('PROVINCE_ID1')
												.setValue('');
										newWin.findById('PROVINCE_NAME1')
												.setValue('');
										newWin.findById('PROVINCE_CODE1')
												.setValue('');
										newWin.findById('PROVINCE_PINYIN1')
												.setValue('');
										newWin
												.findById('PROVINCE_ABBR_PINYIN1')
												.setValue('');

									}
								}
							});
							conditionStore.reload();
						},
						failure : function() {
							Ext.Msg.alert('警告', '由于异常原因，提交数据失败！');
						}
					});
				}
			}, {
				text : '新增',
				id : 'save',
				handler : function() {

					if (!addPanel.findById('PROVINCE_NAME1').validate()) {
						Ext.Msg.alert('', '省份名称必填');
						addPanel.findById("PROVINCE_NAME1").focus();
						return;
					}

					if (!addPanel.findById('PROVINCE_CODE1').validate()) {
						Ext.Msg.alert('', '省份编号必填');
						addPanel.findById("PROVINCE_CODE1").focus();
						return;
					}
					Ext.Ajax.request({
								url : 'Province!updateProvince.action',
								method : 'post',
								params : {
									province : "{\"province\":{"
											+ "\"province_id\":\""
											+ addPanel.findById("PROVINCE_ID1")
													.getValue()
											+ "\",\"province_name\":\""
											+ addPanel
													.findById("PROVINCE_NAME1")
													.getValue()
											+ "\",\"province_code\":\""
											+ addPanel
													.findById("PROVINCE_CODE1")
													.getValue()
											+ "\",\"province_pinyin\":\""
											+ addPanel
													.findById("PROVINCE_PINYIN1")
													.getValue()
											+ "\",\"province_abbr_pinyin\":\""
											+ addPanel
													.findById("PROVINCE_ABBR_PINYIN1")
													.getValue() + "\"}}"
								},
								success : function() {
									conditionStore.commitChanges();
									conditionStore.on('beforeload', function() {
												conditionStore.baseParams = {}
											});

									Ext.MessageBox.show({
												title : '提示',
												msg : '新增操作成功！',
												buttons : Ext.MessageBox.OK,
												fn : function(btn) {
													if (btn == "ok") {
														addWin.hide();
													}
												}
											});
									addWin.hide();
									conditionStore.reload();
								},
								failure : function() {
									Ext.Msg.alert('警告', '由于异常原因，提交数据失败！');
								}
							});

				}
			}, {
				text : '取消',
				id : 'cancel',
				handler : function() {
					addWin.hide();

				}
			}]
		});
		return addWin;
	}

	// 修改窗口
	function getModifyWindow() {
		var addPanel = new Ext.form.FormPanel({
					// labelAlign: 'top',
					frame : true,

					id : 'editPanelForm',
					bodyStyle : 'padding:5px 5px 0',
					items : [{
								layout : 'column',
								items : [{
											columnWidth : 1,
											layout : 'form',
											items : [{
														xtype : 'hidden',
														name : 'PROVINCE_ID2',
														id : 'PROVINCE_ID2'
													}]
										}, {
											columnWidth : .5,
											layout : 'form',
											items : [{
														xtype : 'textfield',
														fieldLabel : '省份编码',
														name : 'PROVINCE_CODE2',
														id : 'PROVINCE_CODE2',
														anchor : '95%',
														emptyText : '',
														blankText : '省份编码不能为空'

													}, {
														xtype : 'textfield',
														fieldLabel : '省份全拼',
														name : 'PROVINCE_PINYIN2',
														id : 'PROVINCE_PINYIN2',
														anchor : '95%'

													}]
										}, {
											columnWidth : .5,
											layout : 'form',
											items : [{
														xtype : 'textfield',
														fieldLabel : '省份名称',
														name : 'PROVINCE_NAME2',
														id : 'PROVINCE_NAME2',
														anchor : '95%',
														allowBlank : false,
														blankText : '名称不能为空',
														emptyText : ''
													}, {
														xtype : 'textfield',
														fieldLabel : '省份简拼',
														name : 'PROVINCE_ABBR_PINYIN2',
														id : 'PROVINCE_ABBR_PINYIN2',
														anchor : '95%',
														allowBlank : true,
														emptyText : ''
													}]
										}]
							}]
				});

		// 新增省的窗口
		var addWin = new Ext.Window({
			buttonalign : 'right',
			closable : true,
			draggable : true,
			height : 160,
			// layout : 'border',
			top : 10,
			region : 'center',
			plain : true,
			items : [addPanel],
			title : '省份信息',
			width : 550,
			listeners : {
				"beforedestroy" : function(obj) {
					// obj.hide();
					return false;
				},
				"beforeshow" : function(obj) {
					addPanel.getForm().reset();
					deletedJson = [];
					return true;
				},
				"beforehide" : function(obj) {
					addPanel.getForm().reset();
					return true;
				}
			},
			buttons : [{
				text : '修改',
				id : 'save',
				handler : function() {

					Ext.Ajax.request({
								url : 'Province!updateProvince.action',
								method : 'post',
								params : {
									province : "{\"province\":{"
											+ "\"province_id\":\""
											+ addPanel.findById("PROVINCE_ID2")
													.getValue()
											+ "\",\"province_name\":\""
											+ addPanel
													.findById("PROVINCE_NAME2")
													.getValue()
											+ "\",\"province_code\":\""
											+ addPanel
													.findById("PROVINCE_CODE2")
													.getValue()
											+ "\",\"province_pinyin\":\""
											+ addPanel
													.findById("PROVINCE_PINYIN2")
													.getValue()
											+ "\",\"province_abbr_pinyin\":\""
											+ addPanel
													.findById("PROVINCE_ABBR_PINYIN2")
													.getValue() + "\"}}"
								},
								success : function() {
									conditionStore.commitChanges();
									conditionStore.on('beforeload', function() {
												conditionStore.baseParams = {}
											});

									Ext.MessageBox.show({
												title : '提示',
												msg : '修改成功！',
												buttons : Ext.MessageBox.OK,
												fn : function(btn) {
													if (btn == "ok") {
														addWin.hide();
													}
												}
											});
									addWin.hide();
								},
								failure : function() {
									Ext.Msg.alert('警告', '由于异常原因，提交数据失败！');
								}
							});

				}
			}, {
				text : '取消',
				id : 'cancel',
				handler : function() {
					addWin.hide();

				}
			}]
		});
		return addWin;
	}

	var grid = new Ext.grid.GridPanel({
				id : "provinceGrid",
				sm : new Ext.grid.CheckboxSelectionModel(),
				cm : cm,
				store : conditionStore,
				height : document.body.clientHeight
						- Ext.getCmp('conditionForm').getInnerHeight()
						- Ext.getCmp('conditionForm').getFrameHeight(),

				loadMask : true,
				loadMask : {
					msg : '正在加载数据...'
				},
				frame : true,
				clicksToEdit : 1,
				tbar : [addAction, '-', editAction, '-', delAction],
				bbar : new Ext.PagingToolbar({
							pageSize : pageSize,
							store : conditionStore,
							displayInfo : true,
							dispalyMsg : '显示第{0}条到{1}条记录，一共{2}条',
							emptyMsg : '没有记录'
						})
			});
	grid.render(Ext.getBody());
}
